//
//  DeviceTools.m
//  ForYourBeauty
//
//  Created by Kelly xu on 2019/6/11.
//  Copyright © 2019 changrenTech. All rights reserved.
//

#import "DeviceTools.h"
//#import "DeviceInfHelper.h"
//#import "DButl.h"
@implementation DeviceTools
+(DeviceTools*)sharedTools{
    static dispatch_once_t onceToken;
    static DeviceTools *_sharedTool = nil;
    dispatch_once(&onceToken, ^{
        _sharedTool = [[DeviceTools alloc]init];
    });
    return _sharedTool;
}
/** 获取设备列表 */
-(void)getDeviceListByUser {
//    kWeakSelf;
//    [[DeviceInfHelper shareInstance] queryDeviceByUser :kProductID endBlock:^(id result, NSError *err) {
//        kStrongSelf;
//        if (err) {
//            NSLog(@"获取设备列表，返回的结果：%@", err);
//            ++strongSelf.queryDeviceCount;
//            // 重新获取
//            if (strongSelf.queryDeviceCount < 3) {
//                [self getDeviceListByUser];
//            }
//
//        }else{
//
//            NSLog(@"获取设备列表，返回的结果：%@",result);
//            if( [result[@"status"]intValue]== 1){
//                strongSelf.deviceArray = [[NSMutableArray alloc]initWithArray:[[DButl shareInstance]queryAllDevice]];
//                //请求成功
//                NSArray *deviceArray = [result objectForKey:@"result"];
//                // 获取到的设备列表和本地的进行校验
//                [self checkDevice:deviceArray];
//
//            }
//        }
//    }];
}
/** 和本地的设备进行数据校验 */
-(void)checkDevice:(NSArray *)httpReturnDevice{
//    // 如果本地缓存的设备中，在回调的绑定集合中不存在，则说明该用户未拥有该设备，则将缓存中删除
//    for (int i = 0;i<_deviceArray.count;i++) {
//        NSDictionary *device  = [_deviceArray objectAtIndex:i];
//        Boolean isHave = false;
//        for (NSDictionary *httpDe in httpReturnDevice) {
//            NSString*macTemp = [httpDe[@"mac"] lowercaseString];
//            if ([macTemp isEqualToString:[device[MAC_ADRESS] lowercaseString]]) {
//                isHave = true;
//            }
//        }
//        if (!isHave) {
//            BOOL isDelete = [[DButl shareInstance] deleteDeviceWithMac:[[_deviceArray objectAtIndex:i][MAC_ADRESS] lowercaseString]];
//            [_deviceArray removeObjectAtIndex:i];
//            --i;
//        }
//    }
//
//    // 如果本地缓存的设备中没有，而在回调的绑定集合中存在，则说明该用户拥有该设备，则添加入缓存
//    for (int i = 0;i<httpReturnDevice.count;i++) {
//        NSDictionary *httpDe  = [httpReturnDevice objectAtIndex:i];
//        Boolean isHave = false;
//        NSString *httpDeviceMac = httpDe[@"mac"];
//        for (NSDictionary *device in _deviceArray) {
//            NSString*macTemp = [device[MAC_ADRESS] lowercaseString];
//            if ([macTemp isEqualToString:[httpDe[@"mac"] lowercaseString]]) {
//                isHave = true;
//            }
//        }
//
//        if (!isHave) {
//            NSMutableDictionary *deviceDic = [[NSMutableDictionary alloc]initWithDictionary:  [NSDictionary dictionaryWithObjectsAndKeys:                              httpDeviceMac, MAC_ADRESS,@"新设备", DEVICE_NAME,@"gicisky_2016", PRODUCT_ID,@"888888",AUTHKEY,@(DeviceStatues_Unconected),DEVICE_STATE,nil]];
//
//            [_deviceArray addObject:deviceDic];
//            [[DButl shareInstance]insertDeviceDic:deviceDic];
//        }
//    }
//
//    // 开始查询设备状态
//    NSMutableArray*devices = [[NSMutableArray alloc]initWithCapacity:0];
//
//    for (NSMutableDictionary *dic in _deviceArray ){
//        // 设备是在线，则不需要重连
//        if ([[dic objectForKey:DEVICE_STATE] intValue] == DeviceStatues_Conected) {
//            continue;
//        }
//        NSString *macAddress = dic[MAC_ADRESS];
//        NSString *pswd = dic[AUTHKEY];
//        NSDictionary *device = [NSDictionary dictionaryWithObjectsAndKeys:
//                                [macAddress lowercaseString], @"mac",
//                                pswd, @"macpwd",nil];
//        [devices addObject:device];
//        [dic setObject:@(DeviceStatues_Conecteing)  forKey:DEVICE_STATE];
//    }
//#warning mark - 刷新表格
////    [self.tableView reloadData];
//    if (devices.count == 0) {
//        return;
//    }
//    // 查询设备状态
//    [self doQueryDevicesState:devices];
    
}
/** 查询设备状态 */
-(void)doQueryDevicesState:(NSMutableArray *) devices{
//    kWeakSelf;
//    [[DeviceInfHelper shareInstance] queryDeviceState:devices withPID:kProductID  didLoadData:^(id result, NSError *err) {
//        kStrongSelf;
//        NSLog(@"查询设备状态的返回:%@", result);
//        if (err) {
//            for (int j = 0; j<devices.count; j++) {
//                NSDictionary*willDevice = [devices objectAtIndex:j];
//                NSString*willMac = willDevice[MAC_ADRESS];
//                for (int j = 0; j<strongSelf.deviceArray.count; j++) {
//                    NSDictionary*dicTemp = [strongSelf.deviceArray objectAtIndex:j];
//                    NSString*macAddress = dicTemp[MAC_ADRESS];
//                    if ([willMac isEqualToString:macAddress]) {
//                        // 请求失败，则显示离线
//                        [[strongSelf.deviceArray objectAtIndex:j] setObject:@(DeviceStatues_Unconected)  forKey:DEVICE_STATE];
//                        break;
//                    }
//                }
//            }
//            #warning mark - 刷新表格
////            [self.tableView reloadData];
//        }
//        else {
//            // 请求成功
//            // {"msg":"OK","result":[{"mac":"20f41b169b76","macpwd":"888888","status":5}],"status":true}
//            if( [result[@"status"]intValue]== 1){
//                NSArray *deviceArray = [result objectForKey:@"result"];
//                for (NSDictionary *dic in deviceArray) {
//                    //                    [self updateDeviceConnectState:dic ];
//                    NSString *willMac = [dic objectForKey:@"mac"];
//                    int iStatus = [[dic objectForKey:@"status"]intValue];
//                    for (int j = 0; j<strongSelf.deviceArray.count; j++) {
//                        NSDictionary*dicTemp = [strongSelf.deviceArray objectAtIndex:j];
//                        NSString*macAddress = dicTemp[MAC_ADRESS];
//                        if ([willMac isEqualToString:macAddress]) {
//                            // 实时状态
//                            [[strongSelf.deviceArray objectAtIndex:j] setObject:@(iStatus)  forKey:DEVICE_STATE];
//                            break;
//                        }
//                    }
//                }
//            }
//            else {
//                for (int j = 0; j<devices.count; j++) {
//                    NSDictionary*willDevice = [devices objectAtIndex:j];
//                    NSString*willMac = willDevice[MAC_ADRESS];
//                    for (int j = 0; j<strongSelf.deviceArray.count; j++) {
//                        NSDictionary*dicTemp = [strongSelf.deviceArray objectAtIndex:j];
//                        NSString*macAddress = dicTemp[MAC_ADRESS];
//                        if ([willMac isEqualToString:macAddress]) {
//                            // 请求失败，则显示离线
//                            [[strongSelf.deviceArray objectAtIndex:j] setObject:@(DeviceStatues_Unconected)  forKey:DEVICE_STATE];
//                            break;
//                        }
//                    }
//                }
//                
//            }
//#warning mark - 刷新表格
//            //            [self.tableView reloadData];
//        }
//    }];
}
@end
